Field of the Invention
The present invention relates generally to digital information storage, and more particularly to a computer system and method for performing disk drive diagnostics and restoration using a host-inaccessible hidden partition.
Description of the Prior Art
A small percentage of computer users may encounter a situation where an error message is displayed when attempting to boot the computer from a hard disk drive. Despite the small percentage of these occurrences, the huge numbers of installed personal computer makes the actual number of boot error occurrences significant. In many of these instances, the user calls for technical support from the system manufacturer. Technical support staff may attempt to diagnose the problem by having the user load a diagnostic program or recovery program from a floppy disk or CD ROM, however many users are unable to locate the disks provided with the system.
In most boot error situations the problem is either a corrupted image on the disk drive or, more infrequently, a failing hard disk drive. Because the situation is undiagnosed when the user cannot locate system disks, technical support staff usually advises the user to send the disk drive back for exchange. As a result, many fully working disk drives are returned and exchanged for new ones, causing unnecessary expense for the manufacturers of computers and disk drives.
The industry has attempted to alleviate this problem by creating partitions on the disk drive to store recovery software. In one variation, a separate logical partition is created using conventional partition tables. In another more recent attempt, a xe2x80x9chost protected areaxe2x80x9d is created by issuing commands to the disk drive for truncating the range of logical block addresses (LBAs) that are visible to the operating system. Unfortunately, this truncating method is well documented in the AT Attachment (ATA) specifications for disk drive interface and therefore, the partition thus created can be easily corrupted by a virus or other malicious programs.
What is needed therefore, is a solution to the boot error problem that doesn""t depend on a user locating removable media which is subject to loss or misplacement and which cannot easily be corrupted by a virus or other malicious programs.
One embodiment of the invention comprises a disk drive for use with a computer system including a host memory and a host processor for generating a boot command. The disk drive comprises: a host-accessible user partition; a host-inaccessible hidden partition independent of the host-accessible user partition; and a disk controller. The host-accessible user partition includes a user partition address range; a host-selected operating system within the user partition address range; and a host-selected master boot record within the user partition address range, the host-selected master boot record identifying the host-selected operating system. The host-inaccessible hidden partition includes: a hidden partition address range outside the user partition address range; diagnostic software within the hidden partition address range, the diagnostic software for determining a condition of the computer system; and a drive-selected master boot record within the hidden partition address range. The drive selected master boot record waits for a user input within a predetermined time period. If the user input is received within the predetermined time period, the master boot record loads and executes the diagnostic software. If the user input is not received within the predetermined time period, the master boot record loads the host-selected master boot record and loads and executes the host-selected operating system identified by the host-selected master boot record. The disk controller receives the boot command and sends the drive-selected master boot record to the host memory in response to the boot command.
Another embodiment of the invention comprises a computer system including: a disk drive and a host computer coupled to the disk drive. The disk drive includes: a host-accessible user partition; and a host-inaccessible hidden partition independent of the host-accessible user partition. The host-accessible user partition includes: a user partition address range; a host-selected operating system within the user partition address range; and a host-selected master boot record within the user partition address range, the host-selected master boot record identifying the host-selected operating system. The host-inaccessible hidden partition includes: a hidden partition address range outside the user partition address range; diagnostic software within the hidden partition address range, the diagnostic software for determining a condition of the computer system; and a drive-selected master boot record within the hidden partition address range. The host computer includes: a host processor for generating a boot command to read the host-selected master boot record; and a host memory for loading the drive-selected master boot record to define a loaded drive-selected master boot record. After the disk drive receives the boot command, the host processor executes the loaded drive-selected master boot record by waiting for a user input within a predetermined time period. If the user input is received within the predetermined time period, the host processor loads and executes the diagnostic software. If the user input is not received within the predetermined time period, the host processor loads the host-selected master boot record and loads and executes the host-selected operating system identified by the host-selected master boot record.
Another embodiment of the invention comprises a computer system including: a host computer; and a disk drive coupled to the host computer. The disk drive comprises: a host-accessible user partition and a host-inaccessible hidden partition independent of the host-accessible user partition. The host-accessible user partition includes: a user partition address range; and user partition data within the user partition address range, the user partition data comprising at least one host-selected operating system and configuration data. The host-inaccessible hidden partition includes: a hidden partition address range outside the user partition address range; a drive-selected operating system within the hidden partition address range; a drive-selected master boot record within the hidden partition address range, the drive-selected master boot record for loading the drive-selected operating system; and restorable user partition data within the hidden partition address range, the restorable user partition data comprising a copy of the user partition data, the restorable user partition data for restoring the user partition data.
Another embodiment of the invention comprises a method of restoring a user system image on a disk drive for use with a computer system including a host processor for generating a boot command and a host memory. The method comprises: loading user partition data comprising at least one host-selected operating system and configuration data on a host-accessible user partition of the disk drive; and loading a restorable user system image comprising the user partition data on a host-inaccessible hidden partition of the disk drive.